package com.gouwudai.gobbs.dao;

import java.util.List;

import com.gouwudai.gobbs.common.IPageList;
import com.gouwudai.gobbs.pojo.TbbsFriends;
import com.litt.core.common.PageParam;
import com.litt.core.exception.DBException;

/**
 * <pre>
 *  Title:TODO
 *  Description: TODO  
 * </pre>
 * 
 * @author <a href="mailto:littcai@hotmail.com">空心大白菜</a>
 * @date 2007-3-29
 * @version 1.0
 * <pre>
 * 修改记录
 *    修改后版本:     修改人：  修改日期:     修改内容: 
 * </pre>
 */
public interface IFriendsDAO {

	public void save(TbbsFriends tbbsFriends);

	public TbbsFriends load(Integer id);

	/**
	 * 接受多个用户为好友
	 * @param friIds
	 * @throws DBException
	 */
	public void doAcceptFriends(String friIds);

	/**
	 * 将多个用户加入黑名单
	 * @param friIds
	 * @throws DBException
	 */
	public void doBlackFriends(String friIds);

	/**
	 * 转入移出黑名单
	 * @param friId
	 * @param isBlack
	 * @throws DBException
	 */
	public void updateBlack(Integer friId, Boolean isBlack);

	/**
	 * 更新在线标志
	 * @param friId
	 * @param isOnline
	 * @throws DBException
	 */
	public void updateOnline(String friendLoginId, Boolean isOnline);

	public void delete(String friIds);

	/**
	 * 查询用户所有好友信息（包括认证的、未认证的、黑名单）
	 * @param userLoginId
	 * @return
	 * @throws DBException
	 */
	public List listAllFriends(String userLoginId);

	/**
	 * 查询用户好友和黑名单,用来过滤新增好友的有效性，在表中不存在才能新增
	 * @param userLoginId
	 * @return
	 */
	public List filterFriends(String userLoginId);

	/**
	 * 查询所有有效用户的登陆ID
	 * @return
	 * @throws DBException
	 */
	public List listAllActiveLoginId();

    /**
     * 分页查询
     * 
     * @param pageParam 分页查询对象
     * 
     * @return
     */
    public IPageList listPage(PageParam pageParam);

	/**
	 * 查询用户好友数量
	 * @param loginId
	 * @return
	 * @throws DBException
	 */
	public int listCount(String loginId, int friendType);

}